
package RapiWeb;

import Utilidades.Archivo;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class JP_CSS extends JPanel{

    private JButton btn_Abrir;
    private JButton btn_Nuevo;
    private JButton btn_Guardar;
    private JTextField txt_NomCSS;
    private JTextArea txt_Area;
    private JComboBox cbx_CSS;
    private JF_Principal principal;

    public JP_CSS(JF_Principal principal) {
        this.principal = principal;
        setLayout(new BorderLayout());
        setBackground(Color.red);
        m_IniciarDatos();
        addComponentes();
        addEventos();

    }

    private void m_IniciarDatos() {
    }

    private void addComponentes() {
        JPanel p_Norte = new JPanel();
        JPanel p_Datos[] = new JPanel[3];
        for (int i = 0; i < p_Datos.length; i++) {
            p_Datos[i] = new JPanel();
            p_Datos[i].setLayout(new GridLayout(3, 1));
        }
        JLabel lbl_NomMaster = new JLabel("Nombre CSS:");
        JLabel lbl_Masters = new JLabel("CSS:");
        btn_Abrir = new JButton("Abrir");
        btn_Nuevo = new JButton("Nuevo");
        btn_Guardar = new JButton("Guardar");
        txt_NomCSS = new JTextField(20);
        cbx_CSS = new JComboBox(principal.getStr_CSS());
        JButton btn_Vacio = new JButton(" ");
        btn_Vacio.setOpaque(false);
        btn_Vacio.setBorderPainted(false);
        btn_Vacio.setVisible(false);
        btn_Vacio.setEnabled(false);

        p_Datos[0].add(lbl_Masters);
        p_Datos[0].add(lbl_NomMaster);
        p_Datos[0].add(btn_Vacio);

        p_Datos[1].add(cbx_CSS);
        p_Datos[1].add(txt_NomCSS);


        p_Datos[2].add(btn_Abrir);
        p_Datos[2].add(btn_Nuevo);
        p_Datos[2].add(btn_Guardar);

        for (int i = 0; i < p_Datos.length; i++) {
            p_Norte.add(p_Datos[i]);
        }

        txt_Area = new JTextArea();
        txt_Area.setVisible(false);
        JScrollPane sp_Area = new JScrollPane(txt_Area);
        add(p_Norte, "North");
        add(sp_Area, "Center");

    }

    private void addEventos() {
        btn_Abrir.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String str_NomArchivo = ""+(String) cbx_CSS.getSelectedItem();
                if (!str_NomArchivo.equals("null")) {
                    Archivo archivo = new Archivo();
                    archivo.m_LeerArchivo(principal.getStr_DirecCSS() + str_NomArchivo);
                    txt_Area.setText(archivo.dameContenido());
                    txt_Area.setVisible(true);
                    str_NomArchivo = str_NomArchivo.replace(".css", "");
                    txt_NomCSS.setText(str_NomArchivo);
                }


            }
        });

        btn_Nuevo.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (txt_NomCSS.getText().length() > 0) {
                    txt_Area.setVisible(true);
                } else {
                    JOptionPane.showMessageDialog(null, "La Hoja de estilo requere un nombre");
                }
            }
        });

        btn_Guardar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                if (txt_NomCSS.getText().length() > 0) {
                    Archivo archivo = new Archivo();
                    String str_nomArchivo = principal.getStr_DirecCSS() + txt_NomCSS.getText() + ".css";
                    archivo.m_CrearCarpeta(principal.getStr_DirecCSS());
                    archivo.m_CrearArchivo(str_nomArchivo);
                    archivo.m_SobreEscribir(str_nomArchivo, txt_Area.getText());
                    String str_Mensaje="CSS guardada.";
                    boolean bol_Agregar=true;
                    for (int i = 0; i < cbx_CSS.getItemCount(); i++) {
                        if ((txt_NomCSS.getText() + ".css").equals((String) cbx_CSS.getSelectedItem())) {
                            bol_Agregar=false;
                            break;
                        }else{
                            bol_Agregar=true;
                        }
                    }
                    if (bol_Agregar){
                        cbx_CSS.insertItemAt(txt_NomCSS.getText() + ".css", cbx_CSS.getItemCount()-1);
                    }else {
                            cbx_CSS.insertItemAt(txt_NomCSS.getText() + ".css", 0);
                        }
                    JOptionPane.showMessageDialog(null,str_Mensaje );
                } else {
                    JOptionPane.showMessageDialog(null, "La Hoja de estilo requere un nombre");
                }
            }
        });
    }
}
